using System;
using System.Collections.Generic;
using System.Text;
using Sucrose.Base;

namespace Sucrose.Output
{
    public static class OutputInterop
    {
        /// <summary>
        /// Adds a task to Outlook
        /// </summary>
        /// <param name="task">The task to be added</param>
        /// <param name="lastImported">The date which the task was last imported</param>
        public delegate void AddTaskHandler(TaskItem task, DateTime lastImported);

        /// <summary>
        /// Adds a grade notification to Outlook
        /// </summary>
        /// <param name="task">The TaskItem which has been graded</param>
        public delegate void AddGradeHandler(TaskItem task);

        /// <summary>
        /// Adds a support document to Outlook
        /// </summary>
        /// <param name="item">SupportItem to add to outlook</param>
        public delegate void AddSupportHandler(SupportItem item);

        /// <summary>
        /// Checks if a task exists in Outlook
        /// </summary>
        /// <param name="task">The task to check against Outlook</param>
        /// <param name="lastRun">The date the task was last imported</param>
        /// <returns>True, if the task exists, false if it does not.</returns>
        public delegate bool TaskExistsHandler(TaskItem task, DateTime lastRun);


        public static AddTaskHandler AddTask = null;
        public static AddGradeHandler AddGrade = null;
        public static AddSupportHandler AddSupport = null;
        public static TaskExistsHandler TaskExists = null;
    }
}
